
module Involutive_mul(
  input [31:0] op_ori,
  output [31:0] op_res
);
  /* verilator lint_off LITENDIAN */
  /* verilator lint_off UNOPTFLAT */
  /* verilator lint_off IMPERFECTSCH */
  logic [0:282] t;
  /* verilator lint_on IMPERFECTSCH */
  /* verilator lint_on UNOPTFLAT */
  /* verilator lint_on LITENDIAN */
  assign t[0:31] =  op_ori;
  assign t[32] = t[2] + t[18];
  assign t[33] = t[12] + t[29];
  assign t[34] = t[21] + t[27];
  assign t[35] = t[34] + t[19];
  assign t[36] = t[6] + t[10];
  assign t[37] = t[34] + t[36];
  assign t[38] = t[24] + t[26];
  assign t[39] = t[38] + t[19];
  assign t[40] = t[0] + t[15];
  assign t[41] = t[40] + t[19];
  assign t[42] = t[13] + t[40];
  assign t[43] = t[5] + t[23];
  assign t[44] = t[43] + t[40];
  assign t[45] = t[3] + t[13];
  assign t[46] = t[45] + t[34];
  assign t[47] = t[8] + t[21];
  assign t[48] = t[47] + t[40];
  assign t[49] = t[32] + t[48];
  assign t[50] = t[24] + t[31];
  assign t[51] = t[50] + t[13];
  assign t[52] = t[14] + t[25];
  assign t[53] = t[52] + t[13];
  assign t[54] = t[39] + t[53];
  assign t[55] = t[15] + t[22];
  assign t[56] = t[55] + t[47];
  assign t[57] = t[16] + t[20];
  assign t[58] = t[57] + t[34];
  assign t[59] = t[4] + t[30];
  assign t[60] = t[14] + t[23];
  assign t[61] = t[59] + t[60];
  assign t[62] = t[13] + t[19];
  assign t[63] = t[59] + t[62];
  assign t[64] = t[63] + t[58];
  assign t[65] = t[10] + t[25];
  assign t[66] = t[65] + t[59];
  assign t[67] = t[66] + t[46];
  assign t[68] = t[0] + t[20];
  assign t[69] = t[68] + t[65];
  assign t[70] = t[69] + t[33];
  assign t[71] = t[7] + t[28];
  assign t[72] = t[30] + t[71];
  assign t[73] = t[71] + t[68];
  assign t[74] = t[3] + t[16];
  assign t[75] = t[74] + t[60];
  assign t[76] = t[18] + t[28];
  assign t[77] = t[76] + t[30];
  assign t[78] = t[3] + t[22];
  assign t[79] = t[78] + t[76];
  assign t[80] = t[1] + t[29];
  assign t[81] = t[20] + t[80];
  assign t[82] = t[66] + t[81];
  assign t[83] = t[80] + t[78];
  assign t[84] = t[83] + t[72];
  assign t[85] = t[84] + t[49];
  assign t[86] = t[84] + t[54];
  assign t[87] = t[17] + t[31];
  assign t[88] = t[12] + t[18];
  assign t[89] = t[87] + t[88];
  assign t[90] = t[9] + t[20];
  assign t[91] = t[87] + t[90];
  assign t[92] = t[11] + t[24];
  assign t[93] = t[4] + t[21];
  assign t[94] = t[92] + t[93];
  assign t[95] = t[1] + t[22];
  assign t[96] = t[92] + t[95];
  assign t[97] = t[6] + t[28];
  assign t[98] = t[97] + t[15];
  assign t[99] = t[61] + t[98];
  assign t[100] = t[3] + t[27];
  assign t[101] = t[97] + t[100];
  assign t[102] = t[9] + t[26];
  assign t[103] = t[102] + t[1];
  assign t[104] = t[0] + t[16];
  assign t[105] = t[102] + t[104];
  assign t[106] = t[11] + t[18];
  assign t[107] = t[22] + t[26];
  assign t[108] = t[106] + t[107];
  assign t[109] = t[1] + t[3];
  assign t[110] = t[106] + t[109];
  assign t[111] = t[17] + t[29];
  assign t[112] = t[111] + t[107];
  assign t[113] = t[63] + t[112];
  assign t[114] = t[18] + t[24];
  assign t[115] = t[114] + t[5];
  assign t[116] = t[41] + t[115];
  assign t[117] = t[114] + t[23];
  assign t[118] = t[117] + t[105];
  assign t[119] = t[118] + t[67];
  assign t[120] = t[7] + t[31];
  assign t[121] = t[120] + t[5];
  assign t[122] = t[25] + t[29];
  assign t[123] = t[122] + t[120];
  assign t[124] = t[3] + t[21];
  assign t[125] = t[124] + t[120];
  assign t[126] = t[125] + t[94];
  assign t[127] = t[3] + t[23];
  assign t[128] = t[127] + t[122];
  assign t[129] = t[41] + t[128];
  assign t[130] = t[8] + t[13];
  assign t[131] = t[16] + t[30];
  assign t[132] = t[130] + t[131];
  assign t[133] = t[132] + t[103];
  assign t[134] = t[4] + t[6];
  assign t[135] = t[130] + t[134];
  assign t[136] = t[91] + t[135];
  assign t[137] = t[116] + t[136];
  assign t[138] = t[4] + t[22];
  assign t[139] = t[12] + t[19];
  assign t[140] = t[138] + t[139];
  assign t[141] = t[132] + t[140];
  assign t[142] = t[9] + t[23];
  assign t[143] = t[138] + t[142];
  assign t[144] = t[123] + t[143];
  assign t[145] = t[5] + t[31];
  assign t[146] = t[145] + t[138];
  assign t[147] = t[146] + t[108];
  assign t[148] = t[1] + t[10];
  assign t[149] = t[18] + t[21];
  assign t[150] = t[148] + t[149];
  assign t[151] = t[150] + t[42];
  assign t[152] = t[8] + t[23];
  assign t[153] = t[148] + t[152];
  assign t[154] = t[25] + t[26];
  assign t[155] = t[28] + t[30];
  assign t[156] = t[154] + t[155];
  assign t[157] = t[11] + t[17];
  assign t[158] = t[154] + t[157];
  assign t[159] = t[14] + t[28];
  assign t[160] = t[24] + t[27];
  assign t[161] = t[159] + t[160];
  assign t[162] = t[32] + t[161];
  assign t[163] = t[162] + t[70];
  assign t[164] = t[162] + t[133];
  assign t[165] = t[12] + t[22];
  assign t[166] = t[159] + t[165];
  assign t[167] = t[166] + t[44];
  assign t[168] = t[166] + t[94];
  assign t[169] = t[168] + t[129];
  assign t[170] = t[2] + t[9];
  assign t[171] = t[6] + t[17];
  assign t[172] = t[170] + t[171];
  assign t[173] = t[172] + t[121];
  assign t[174] = t[168] + t[173];
  assign t[175] = t[172] + t[153];
  assign t[176] = t[19] + t[28];
  assign t[177] = t[170] + t[176];
  assign t[178] = t[177] + t[108];
  assign t[179] = t[141] + t[178];
  assign t[180] = t[86] + t[179];
  assign t[181] = t[177] + t[37];
  assign t[182] = t[7] + t[14];
  assign t[183] = t[182] + t[170];
  assign t[184] = t[5] + t[11];
  assign t[185] = t[16] + t[22];
  assign t[186] = t[184] + t[185];
  assign t[187] = t[61] + t[186];
  assign t[188] = t[187] + t[113];
  assign t[189] = t[188] + t[174];
  assign t[190] = t[51] + t[186];
  assign t[191] = t[175] + t[190];
  assign t[192] = t[13] + t[15];
  assign t[193] = t[184] + t[192];
  assign t[194] = t[16] + t[19];
  assign t[195] = t[194] + t[184];
  assign t[196] = t[69] + t[195];
  assign t[197] = t[6] + t[12];
  assign t[198] = t[197] + t[192];
  assign t[199] = t[75] + t[198];
  assign t[200] = t[199] + t[82];
  assign t[201] = t[199] + t[178];
  assign t[202] = t[85] + t[201];
  assign t[203] = t[5] + t[25];
  assign t[204] = t[203] + t[197];
  assign t[205] = t[204] + t[56];
  assign t[206] = t[205] + t[126];
  assign t[207] = t[204] + t[110];
  assign t[208] = t[113] + t[207];
  assign t[209] = t[2] + t[5];
  assign t[210] = t[209] + t[194];
  assign t[211] = t[89] + t[210];
  assign t[212] = t[2] + t[8];
  assign t[213] = t[3] + t[10];
  assign t[214] = t[212] + t[213];
  assign t[215] = t[123] + t[214];
  assign t[216] = t[215] + t[64];
  assign t[217] = t[164] + t[216];
  assign t[218] = t[215] + t[167];
  assign t[219] = t[17] + t[24];
  assign t[220] = t[212] + t[219];
  assign t[221] = t[101] + t[220];
  assign t[222] = t[221] + t[151];
  assign t[223] = t[208] + t[222];
  assign t[224] = t[179] + t[222];
  assign t[225] = t[206] + t[222];
  assign t[226] = t[221] + t[144];
  assign t[227] = t[226] + t[200];
  assign t[228] = t[1] + t[27];
  assign t[229] = t[20] + t[23];
  assign t[230] = t[228] + t[229];
  assign t[231] = t[230] + t[77];
  assign t[232] = t[205] + t[231];
  assign t[233] = t[230] + t[158];
  assign t[234] = t[233] + t[196];
  assign t[235] = t[234] + t[86];
  assign t[236] = t[30] + t[31];
  assign t[237] = t[228] + t[236];
  assign t[238] = t[79] + t[237];
  assign t[239] = t[196] + t[238];
  assign t[240] = t[169] + t[239];
  assign t[241] = t[239] + t[222];
  assign t[242] = t[191] + t[239];
  assign t[243] = t[2] + t[10];
  assign t[244] = t[11] + t[12];
  assign t[245] = t[243] + t[244];
  assign t[246] = t[245] + t[156];
  assign t[247] = t[116] + t[246];
  assign t[248] = t[247] + t[200];
  assign t[249] = t[26] + t[29];
  assign t[250] = t[249] + t[8];
  assign t[251] = t[250] + t[183];
  assign t[252] = t[196] + t[251];
  assign t[253] = t[201] + t[252];
  assign t[254] = t[250] + t[96];
  assign t[255] = t[254] + t[211];
  assign t[256] = t[163] + t[255];
  assign t[257] = t[254] + t[99];
  assign t[258] = t[257] + t[252];
  assign t[259] = t[14] + t[20];
  assign t[260] = t[13] + t[17];
  assign t[261] = t[259] + t[260];
  assign t[262] = t[83] + t[261];
  assign t[263] = t[35] + t[262];
  assign t[264] = t[263] + t[201];
  assign t[265] = t[137] + t[263];
  assign t[266] = t[262] + t[147];
  assign t[267] = t[266] + t[85];
  assign t[268] = t[262] + t[181];
  assign t[269] = t[268] + t[255];
  assign t[270] = t[193] + t[261];
  assign t[271] = t[118] + t[270];
  assign t[272] = t[271] + t[206];
  assign t[273] = t[9] + t[14];
  assign t[274] = t[31] + t[273];
  assign t[275] = t[274] + t[73];
  assign t[276] = t[113] + t[275];
  assign t[277] = t[218] + t[276];
  assign t[278] = t[22] + t[25];
  assign t[279] = t[0] + t[278];
  assign t[280] = t[89] + t[279];
  assign t[281] = t[216] + t[280];
  assign t[282] = t[280] + t[257];

  assign op_res = {t[240],t[241],t[272],t[276],t[256],t[264],t[281],t[119],
                   t[189],t[235],t[282],t[232],t[242],t[217],t[223],t[255],
                   t[267],t[265],t[258],t[200],t[224],t[225],t[248],t[252],
                   t[253],t[202],t[227],t[174],t[180],t[277],t[269],t[222]};
  
endmodule
